/*
 * Match.h
 *
 *  Created on: 16 mai 2012
 *      Author: Alexis FOERSTER
 */

#ifndef MATCH_H_
#define MATCH_H_

#include "Equipe.h"
#include <QDateTime>
#include <QSharedPointer>

enum statut
{
    NON_JOUE, EN_COURS, TERMINE
};

enum resultat
{
    VICTOIRE_EQUIPE_DOMICILE, VICTOIRE_EQUIPE_EXTERIEUR, MATCH_NUL
};

class Match
{
public:
    Match();
    Match(const QSharedPointer<Equipe> & equipeDomicile, const QSharedPointer<Equipe> & equipeExterieur, const QDateTime & date = QDateTime());
    virtual ~Match();

    const QSharedPointer<Equipe> & getEquipeDomicile() const;
    const QSharedPointer<Equipe> & getEquipeExterieur() const;
    const QDateTime & getDate() const;
    const int & getStatut() const;
    const int & getScoreDomicile() const;
    const int & getScoreExterieur() const;
    void setEquipeDomicile(const QSharedPointer<Equipe> & equipeDomicile);
    void setEquipeExterieur(const QSharedPointer<Equipe> & equipeExterieur);
    void setDate(const QDateTime & date);
    void setStatut(const int & statut);
    void setScoreDomicile(const int & scoreDomicile);
    void setScoreExterieur(const int & scoreExterieur);

    void clear();
    bool equals(const Match & match) const;
    int getResultat();

private:
    QSharedPointer<Equipe> equipeDomicile;
    QSharedPointer<Equipe> equipeExterieur;
    QDateTime date;
    int statut;
    int scoreDomicile;
    int scoreExterieur;
};

#endif /* MATCH_H_ */
